package ysq.xyg.web.service;

import ysq.xyg.base.model.dto.ReturnEntity;
import ysq.xyg.base.service.BaseService;
import ysq.xyg.web.model.po.WebMember;
import ysq.xyg.sys.model.po.SysUser;
import ysq.xyg.web.model.vo.WebMemberVo;

import java.util.List;

/**
 * 业务模块-会员service接口
 *
 * @author shengQiang yu
 * @date 2019-4-26 13:51:56
 */
public interface WebMemberService extends BaseService<WebMember> {
    /**
     * 分页查询
     *
     * @param webMemberVo 对象
     * @param pageSize 当前页面
     * @param pageNum 页面数量
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-4-26 13:51:56
     */
    ReturnEntity page(WebMemberVo webMemberVo, int pageSize, int pageNum);
    /**
     * 修改
     *
     * @param webMemberVo 对象
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-4-26 13:51:56
     */
    ReturnEntity addOrUpdate(WebMemberVo webMemberVo, SysUser currentUser);
    /**
     * 删除
     *
     * @param id 主键id删除
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-4-26 13:51:56
     */
    ReturnEntity delete(String id, SysUser currentUser);
    /**
     * 获取集合
     *
     * @param webMemberVo 对象
     * @return List<WebMember> WebMember集合
     * @author shengQiang yu
     * @date 2019-4-26 13:51:56
     */
    List<WebMember> acceptList(WebMemberVo webMemberVo);

    /**
     * 获取会员数量
     *
     * @param webMemberVo 对象
     * @return
     * @author shengQiang yu
     * @date 2019-04-27 9:01
     */
    int selectCountNum(WebMemberVo webMemberVo);
    /**
     * 设置头像
     *
     * @param id 主键id
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-4-26 13:51:56
     */
    ReturnEntity setHeadImage(String id);
    /**
     * 根据openid获取会员信息
     *
     * @param openid 信息
     * @return
     * @author shengQiang yu
     * @date 2019-04-27 9:01
     */
    WebMember selectEntityByOpenid(String openid);
    /**
     * 根据unionid获取会员信息
     *
     * @param unionid 信息
     * @return
     * @author shengQiang yu
     * @date 2019-04-27 9:01
     */
    WebMember selectEntityByUnionId(String unionid);
    /**
     * 根据cardNo获取会员信息
     *
     * @param cardNo 信息
     * @return
     * @author shengQiang yu
     * @date 2019-04-27 9:01
     */
    WebMember selectEntityByCardNo(String cardNo);
    /**
     * 获取最大卡号
     *
     * @return
     * @author shengQiang yu
     * @date 2019-04-27 9:01
     */
    int selectMaxId();
}
